package com.ssy.lingxi.member.merchant.service.web;

import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.member.merchant.model.vo.validate.request.MemberModifyPageVO;
import com.ssy.lingxi.member.merchant.model.vo.validate.request.MemberModifyVO;
import com.ssy.lingxi.member.merchant.model.vo.validate.request.ValidateIdVO;
import com.ssy.lingxi.member.merchant.model.vo.validate.request.ValidateIdsVO;
import com.ssy.lingxi.member.merchant.model.vo.validate.response.MemberModifyDetailVO;
import com.ssy.lingxi.member.merchant.model.vo.validate.response.MemberModifyPageQueryVO;
import com.ssy.lingxi.member.merchant.model.vo.validate.response.MemberModifySearchConditionVO;
import org.springframework.http.HttpHeaders;

/**
 * 会员资料变更审核相关接口
 * @author 万宁
 * @version 2.0.0
 * @date 2021-05-25
 */
public interface IMemberAbilityModifyService {

    /**
     * 获取会员变更各个步骤分页查询列表页面下拉框
     * @param headers Http头部信息
     * @return 查询结果
     */
    Wrapper<MemberModifySearchConditionVO> getModifyPageConditions(HttpHeaders headers);


    /**
     * 分页查询“待审核变更（一级）”会员列表
     * @param headers Http头部新
     * @param pageVO 接口参数
     * @return 查询结果
     */
    Wrapper<PageData<MemberModifyPageQueryVO>> pageToModifyGradeOne(HttpHeaders headers, MemberModifyPageVO pageVO);

    /**
     * “待审核变更（一级）” - 查询会员详情
     * @param headers Http头部信息
     * @param idVO 接口参数
     * @return 查询结果
     */
    Wrapper<MemberModifyDetailVO> getToModifyGradeOne(HttpHeaders headers, ValidateIdVO idVO);

    /**
     * “待审核变更（一级）” - 审核会员
     * @param headers Http头部信息
     * @param modifyVO 接口参数
     * @return 审核结果
     */
    Wrapper<Void> toModifyGradeOne(HttpHeaders headers, MemberModifyVO modifyVO);

    /**
     * “待审核变更（一级）” - 批量审核
     * @param headers Http头部信息
     * @param idVO 接口参数
     * @return 查询结果
     */
    Wrapper<Void> batchToModifyGradeOne(HttpHeaders headers, ValidateIdsVO idVO);

    /**
     * 分页查询“待审核变更（二级）”会员列表
     * @param headers Http头部新
     * @param pageVO 接口参数
     * @return 查询结果
     */
    Wrapper<PageData<MemberModifyPageQueryVO>> pageToModifyGradeTwo(HttpHeaders headers, MemberModifyPageVO pageVO);

    /**
     * “待审核变更（二级）” - 查询会员详情
     * @param headers Http头部信息
     * @param idVO 接口参数
     * @return 查询结果
     */
    Wrapper<MemberModifyDetailVO> getToModifyGradeTwo(HttpHeaders headers, ValidateIdVO idVO);

    /**
     * “待审核变更（二级）” - 审核会员
     * @param headers Http头部信息
     * @param modifyVO 接口参数
     * @return 审核结果
     */
    Wrapper<Void> toModifyGradeTwo(HttpHeaders headers, MemberModifyVO modifyVO);

    /**
     * “待审核变更（二级）” - 批量审核
     * @param headers Http头部信息
     * @param idVO 接口参数
     * @return 查询结果
     */
    Wrapper<Void> batchToModifyGradeTwo(HttpHeaders headers, ValidateIdsVO idVO);

    /**
     * 分页查询“待确认会员变更”会员列表
     * @param headers Http头部新
     * @param pageVO 接口参数
     * @return 查询结果
     */
    Wrapper<PageData<MemberModifyPageQueryVO>> pageToConfirmModify(HttpHeaders headers, MemberModifyPageVO pageVO);

    /**
     * “待确认会员变更” - 查询会员详情
     * @param headers Http头部信息
     * @param idVO 接口参数
     * @return 查询结果
     */
    Wrapper<MemberModifyDetailVO> getToConfirmModify(HttpHeaders headers, ValidateIdVO idVO);

    /**
     * “待确认会员变更” - 审核会员
     * @param headers Http头部信息
     * @param modifyVO 接口参数
     * @return 审核结果
     */
    Wrapper<Void> toConfirmModify(HttpHeaders headers, MemberModifyVO modifyVO);

    /**
     * “待确认会员变更” - 批量审核
     * @param headers Http头部信息
     * @param idVO 接口参数
     * @return 查询结果
     */
    Wrapper<Void> batchToConfirmModify(HttpHeaders headers, ValidateIdsVO idVO);
}
